using System;
using Newtonsoft.Json;

namespace SIP.PN.FrontEnd.Code.JSon
{
    public abstract class Status : IStatus
    {
        private string feedbackMessage = "";

        [JsonProperty("status")]
        public abstract string Estado { get; set; }

        [JsonPropertyAttribute("feedbackMessage")]
        public virtual string FeedbackMessage
        {
            get { return feedbackMessage; }
            set { feedbackMessage = value; }
        }
    }

    public class StatusSuccess : Status
    {
        [JsonPropertyAttribute("status")]
        public override string Estado
        {
            get { return "success"; }
            set { throw new NotImplementedException(); }
        }
    }

    public class StatusCaution : Status
    {
        [JsonPropertyAttribute("status")]
        public override string Estado
        {
            get { return "caution"; }
            set { throw new NotImplementedException(); }
        }
    }

    public class StatusError : Status
    {
        [JsonPropertyAttribute("status")]
        public override string Estado
        {
            get { return "error"; }
            set { throw new NotImplementedException(); }
        }
    }
}
